#ifndef _DOFSHADERCLASS_H_
#define _DOFSHADERCLASS_H_

#include "horizontalblurshaderclass.h"
#include "verticalblurshaderclass.h"
#include "rendertextureclass.h"
#include "orthowindowclass.h"
#include "mergetextureshaderclass.h"
#include "d3dclass.h"


class DOFShaderClass: ShaderClass
{

public:

	DOFShaderClass	();
	~DOFShaderClass	();
	bool Initialize	(ID3D11Device*, HWND hwnd, int, int);
	bool PreRender	(D3DClass*);
	bool Render		(D3DClass*, D3DXMATRIX& , D3DXMATRIX& , D3DXMATRIX& );
	bool PostRender	(D3DClass*);

private:

	void ShutdownShader			();
	bool SetShaderParameters	(D3DClass*, const D3DXMATRIX&, const D3DXMATRIX&, const D3DXMATRIX&, float, const D3DXVECTOR3&);

private:
	
	HorizontalBlurShaderClass	*m_HorizontalBlurShader;
	VerticalBlurShaderClass		*m_VerticalBlurShader;
	MergeTextureShaderClass		*m_MergeTextureShader;

	RenderTextureClass			*m_OriginalTexture, *m_HorizontalBlurredTexture,*m_VerticalBlurredTexture,*m_FinalTexture;
	OrthoWindowClass			*m_FullScreenWindow;

};

#endif